home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / FILE.ASM < prev    next >
Assembly Source File  |  2000-09-26  |  17KB  |  570 lines

  1. code   segment
  2.  
  3.  assume cs:code,ds:code,es:code,ss:code
  4.  org 0
  5.  
  6. befehl    equ 2
  7. status    equ 3
  8. end_adr   equ 14
  9.  
  10. file_befehle  equ 20
  11.  
  12. cmd       equ 16384
  13. arg1      equ cmd+0
  14. arg2      equ cmd+2
  15. arg3      equ cmd+4
  16. arg4      equ cmd+6
  17. arg5      equ cmd+8
  18. arg6      equ cmd+10
  19. arg7      equ cmd+12
  20. arg8      equ cmd+14
  21.  
  22. buf_seg   equ 22    ; DualPortedRAM->BufferRAM.PCSegment
  23.  
  24. reg_bp    equ 22
  25. reg_sp    equ 20
  26. reg_ss    equ 18
  27. reg_cs    equ 16
  28. reg_es    equ 14
  29. reg_di    equ 12
  30. reg_ds    equ 10
  31. reg_si    equ 8
  32. reg_dx    equ 6
  33. reg_cx    equ 4
  34. reg_bx    equ 2
  35. reg_ax    equ 0
  36.  
  37.  
  38. erst_b    equ this byte
  39.  
  40. filetreiber:
  41.          dw -1,-1             ; DOS-Intern
  42.          db 0,80h             ; Flags
  43. soffset  dw offset strat      ; Strategie-Routine
  44. ioffset  dw offset intr       ; Interrupt-Routine
  45.          db "$FILE000"        ; File-Kennung
  46.  
  47.  
  48. janus_seg   dw (?)
  49. janus_ofs   dw (?)
  50. db_ptr      dw (?),(?)
  51.  
  52. cmd_tab:
  53.  dw offset amiga           ; #00
  54.  dw offset amiga           ; #01
  55.  dw offset amiga           ; #02
  56.  dw offset amiga           ; #03
  57.  dw offset copy_to_janus   ; #04
  58.  dw offset copy_to_pc      ; #05
  59.  dw offset get_adr         ; #06
  60.  dw offset amiga           ; #07
  61.  dw offset fill            ; #08
  62.  dw offset amiga           ; #09
  63.  dw offset amiga           ; #10
  64.  dw offset amiga           ; #11
  65.  dw offset amiga           ; #12
  66.  dw offset amiga           ; #13
  67.  dw offset amiga           ; #14
  68.  dw offset amiga           ; #15
  69.  dw offset amiga           ; #16
  70.  dw offset amiga           ; #17
  71.  dw offset amiga           ; #18
  72.  dw offset amiga           ; #19
  73.  
  74. dummy  proc far
  75.  ret
  76. dummy  endp
  77.  
  78.  ; ************ Interrupt für Vektor $49
  79. fileint  proc far
  80.  push bp
  81.  push sp
  82.  push ss
  83.  push cs
  84.  push es
  85.  push di
  86.  push ds
  87.  push si
  88.  push dx
  89.  push cx
  90.  push bx
  91.  push ax
  92.  
  93.  mov bp,sp
  94.  push cs
  95.  pop ds
  96.  mov di,cs:janus_ofs
  97.  mov es,cs:janus_seg
  98.  
  99.  cmp ah,file_befehle
  100.  jge fehler
  101.  
  102.  push ax 
  103.  mov al,ah
  104.  shl al,1
  105.  xor ah,ah
  106.  mov si,ax
  107.  pop ax
  108.  call [cmd_tab+si]
  109.  jmp okay
  110.  
  111. fehler:
  112.  mov w[bp+reg_bx],7500
  113.  
  114. okay:
  115.  pop ax
  116.  pop bx
  117.  pop cx
  118.  pop dx
  119.  pop si
  120.  pop ds
  121.  pop di
  122.  pop es
  123.  pop bp
  124.  pop bp
  125.  pop bp
  126.  pop bp
  127.  iret
  128. fileint  endp
  129.  
  130.  
  131. call_and_wait  proc near
  132.  mov ah,7
  133.  mov al,26
  134.  int 0b
  135.  mov ah,8
  136.  mov al,26
  137.  int 0b
  138.  ret
  139. call_and_wait  endp
  140.  
  141.  
  142. copy_to_janus  proc near
  143.  mov ds,bx
  144.  mov si,dx
  145.  rep movsb
  146.  ret
  147. copy_to_janus  endp
  148.  
  149.  
  150. copy_to_pc  proc near
  151.  push ds
  152.  mov ds,cs:janus_seg
  153.  mov si,cs:janus_ofs
  154.  mov es,bx
  155.  mov di,dx
  156.  rep movsb
  157.  pop ds
  158.  ret
  159. copy_to_pc  endp
  160.  
  161.  
  162. fill  proc near
  163.  mov es,bx
  164.  mov di,dx
  165. fill_loop:
  166.  mov es:b[di],al
  167.  add di,1
  168.  loop fill_loop 
  169.  ret
  170. fill  endp
  171.  
  172.  
  173. get_adr  proc near
  174.  mov w[bp+reg_es],cs:janus_seg
  175.  mov w[bp+reg_di],cs:janus_ofs
  176.  ret
  177. get_adr  endp
  178.  
  179.  
  180. amiga  proc near
  181.  mov al,ah
  182.  xor ah,ah
  183.  mov es:w[di+arg1],ax
  184.  mov es:w[di+arg2],bx
  185.  mov es:w[di+arg3],cx
  186.  mov es:w[di+arg4],dx
  187.  call near call_and_wait
  188.  mov w[bp+reg_bx],es:w[di+arg2]
  189.  mov w[bp+reg_cx],es:w[di+arg3]
  190.  mov w[bp+reg_dx],es:w[di+arg4]
  191.  ret
  192. amiga endp
  193.  
  194.  
  195.  ; ************ Ende des Treibers ***********
  196. ende  equ this byte
  197.  
  198.  
  199.  ; ************ Interruptroutine des Treibers
  200. intr   proc far
  201.  push ax
  202.  push bx
  203.  push cx
  204.  push dx
  205.  push di
  206.  push si
  207.  push bp
  208.  push ds
  209.  push es
  210.  pushf
  211.  
  212.  push cs
  213.  pop ds
  214.  
  215.  les di,dword ptr db_ptr
  216.  mov bl,es:[di+befehl]
  217.  cmp bl,0
  218.  je bc_okay
  219.  
  220.  mov ax,8003h
  221.  jmp short intr_end
  222.  
  223. bc_okay:
  224.  call init
  225.  
  226. intr_end  label near
  227.  or ax,0100h
  228.  mov es:[di+status],ax
  229.  
  230.  popf
  231.  pop es
  232.  pop ds
  233.  pop bp
  234.  pop si
  235.  pop di
  236.  pop dx
  237.  pop cx
  238.  pop bx
  239.  pop ax
  240.  ret
  241. intr  endp
  242.  
  243.  
  244. strat  proc far
  245.  mov cs:db_ptr,bx
  246.  mov cs:db_ptr+2,es
  247.  ret
  248. start  endp
  249.  
  250.  
  251.  ; ************ Installationsroutine
  252. init   proc near
  253.  mov word ptr es:[di+end_adr],offset ende
  254.  mov word ptr es:[di+end_adr+2],cs
  255.  
  256.  mov dx,offset initm            ; Installationsmeldung ausgeben
  257.  mov ah,9
  258.  int 21h
  259.  
  260.  push di                        ; Verbindung zum Amiga herstellen
  261.  push es
  262.  push ds
  263.  mov ah,1
  264.  mov al,26
  265.  int 0b
  266.  cmp di,-1
  267.  je init_fehler
  268.  mov janus_ofs,di
  269.  mov janus_seg,es:w[buf_seg]
  270.  mov es,es:w[buf_seg]
  271.  mov es:w[di+arg1],1000
  272.  call near call_and_wait
  273.  pop ds
  274.  pop es
  275.  pop di
  276.  
  277.  mov ah,25h                     ; File-Interrupt einbinden
  278.  mov al,049
  279.  mov dx,offset fileint
  280.  int 21h
  281.  
  282.  mov ioffset,offset dummy
  283.  mov soffset,offset dummy
  284.  
  285.  mov dx,offset sokay            ; Treiber erfolgreich installiert
  286.  mov ah,9
  287.  int 21h
  288.  
  289.  xor ax,ax
  290. init_ende:
  291.  ret
  292.  
  293. init_fehler:
  294.  pop ds
  295.  pop es
  296.  pop di
  297.  mov dx,offset kserv
  298.  mov ah,9
  299.  int 21h
  300.  mov ax,1
  301.  mov word ptr es:[di+end_adr],offset filetreiber
  302.  mov word ptr es:[di+end_adr+2],cs
  303.  jmp near init_ende
  304. init  endp
  305.  
  306.  
  307. texte  equ 12
  308. text_tab:
  309.  dw offset exe_t
  310.  dw offset info1
  311.  dw offset info2
  312.  dw offset info3
  313.  dw offset info4
  314.  dw offset info5
  315.  dw offset info6
  316.  dw offset info7
  317.  dw offset info8
  318.  dw offset info9
  319.  dw offset info10
  320.  dw offset info11
  321.  dw offset info12
  322.  
  323. exe_start  proc far
  324.  push cs
  325.  pop ds
  326.  
  327.  mov bx,0
  328. ausgabe:
  329.  push bx
  330.  shl bx,1
  331.  mov dx,[text_tab+bx]
  332.  mov ah,9
  333.  int 21h
  334.  xor ax,ax
  335.  int 16h
  336.  pop bx
  337.  add bx,1
  338.  cmp bx,texte
  339.  jle ausgabe
  340.  
  341.  mov ax,4c00
  342.  int 21h
  343. exe_start  endp
  344.  
  345.  ; ************ Installationsmeldungen beim Start
  346. initm db "ATUtilities File Transfer  -  Version 2.0   17. September 1993",13,10
  347.       db "Copyright (C) 1993 by Thomas Dreibholz.  All rights reserved.",13,10,"$"
  348. sokay db "Treiber wurde erfolgreich installiert.",13,10,10,"$"
  349. kserv db "Amiga-Treiber an Janus-Interrupt 26 ist nicht aktiv.",13,10
  350.       db "Treiber konnte nicht installiert werden.",13,10,10,"$"
  351.  
  352. exe_t db "ATUtilities File Transfer:",13,10
  353.       db "Dieses Programm ist ein Treiber und kann deshalb nicht direkt aufgerufen",13,10
  354.       db "werden. Um den Treiber zu Installieren, muß folgende Zeile in die CONFIG.SYS",13,10
  355.       db "eingefügt werden:",13,10,10
  356.       db "DEVICE=Lw:\Verz\FILE.EXE",13,10,10
  357.       db "Nach dem nächsten Reset stehen dann die Funktionen zur Verfügung.",13,10,10,10
  358.       db "File Transfer ermöglicht es, von einem Programm auf der AT-Karte Dateien",13,10
  359.       db "und Verzeichnisse auf dem Amiga zu bearbeiten. Zum Aufruf der Funktionen",13,10
  360.       db "wird das Programm auf Interrupt-Verktor 49h installiert und kann somit von",13,10
  361.       db "allen Sprachen aufgerufen werden, die direkte Interruptprogrammierung unter-",13,10
  362.       db "stützen.",13,10,10 
  363.       db "Datei- und Verzeichnisnamen sowie Daten werden dem Interrupt im Parameter-",13,10
  364.       db "speicher des Janus-Interrupt 26 (der Interrupt zur Kommunikation mit dem Amiga)",13,10
  365.       db "übergeben. Die Adresse dieses Speichers kann mit der Funktion 6 ermittelt",13,10
  366.       db "werden.",13,10,10 
  367.       db "17. 09. 1993 - Version 2.0  Copyright (C) 1993 by Thomas Dreibholz",13,10,10
  368.       db "<< Taste >>",13,10,"$"
  369. info1 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 1",13,10,10
  370.       db "Öffnen einer Amiga-Datei (Open):",13,10
  371.       db " AH = 0",13,10
  372.       db " BX = Zugriffsmodus",13,10
  373.       db "      1 = Lesen",13,10
  374.       db "      2 = Schreiben",13,10
  375.       db "      3 = Lesen und Schreiben",13,10
  376.       db " Name der Datei im Parameter-Speicher des Janus-Interrupt 26",13,10,10
  377.       db " BX = Fehlernummer",13,10
  378.       db "         10000 = Okay",13,10
  379.       db "      <> 10000 = Fehler",13,10
  380.       db " CX = Handle-Nummer",13,10,10,10
  381.       db "Datei schließen (Close):",13,10
  382.       db " AH = 1",13,10
  383.       db " BX = Handlenummer",13,10,10,10,10,10
  384.       db "<< Taste >>",13,10,"$"
  385. info2 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 2",13,10,10
  386.       db "Aus Datei lesen (Read):",13,10
  387.       db " AH = 2",13,10
  388.       db " BX = Handlenummer",13,10
  389.       db " CX = Anzahl der zu lesenden Bytes",13,10,10
  390.       db " Daten im Parameter-Speicher des Janus-Interrupt 26",13,10
  391.       db " BX = Anzahl der gelesenen Bytes",13,10,10,10
  392.       db "In Datei schreiben (Write):",13,10
  393.       db " AH = 3",13,10
  394.       db " BX = Handlenummer",13,10
  395.       db " CX = Länge des Datenblocks",13,10
  396.       db " Daten im Parameter-Speicher des Janus-Interrupt 26",13,10,10
  397.       db " BX = Anzahl der geschriebenen Bytes",13,10,10,10,10,10,10
  398.       db "<< Taste >>",13,10,"$"
  399. info3 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 3",13,10,10
  400.       db "PC-Speicher in Janus-Speicher kopieren:",13,10
  401.       db " AH = 4",13,10
  402.       db " BX = Segment",13,10
  403.       db " DX = Offset",13,10
  404.       db " CX = Länge",13,10,10,10
  405.       db "Janus-Speicher in PC-Speicher kopieren:",13,10
  406.       db " AH = 5",13,10
  407.       db " BX = Segment",13,10
  408.       db " DX = Offset",13,10
  409.       db " CX = Länge",13,10,10,10
  410.       db "Adresse des Parameter-Speicher von Janus-Interrupt 26 ermitteln",13,10
  411.       db " AH = 6",13,10,10
  412.       db " ES = Segment",13,10
  413.       db " DI = Offset",13,10,10,10
  414.       db "<< Taste >>",13,10,"$"    
  415. info4 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 4",13,10,10
  416.       db "Position in Datei ändern (Seek):",13,10
  417.       db " AH = 7",13,10
  418.       db " BX = Handlenummer",13,10
  419.       db " CX = Position",13,10
  420.       db " DX = Positionsmodus",13,10
  421.       db "      0 = CX Bytes vom Anfang der Datei",13,10
  422.       db "      1 = CX Bytes von der aktuellen Position",13,10
  423.       db "      2 = CX Bytes vom Ende der Datei",13,10,10 
  424.       db " BX = Seek() ausgeführt",13,10
  425.       db "         10000 = Okay",13,10
  426.       db "      <> 10000 = Ungültiger Handle",13,10
  427.       db " Rückgabewert von Seek() als DWORD im Parameter-Speicher von",13,10
  428.       db " Janus-Interrupt 26",13,10,10,10,10,10,10,10,10
  429.       db "<< Taste >>",13,10,"$"
  430. info5 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 5",13,10,10
  431.       db "Speicherbereich mit Zeichen füllen:",13,10
  432.       db " AH = 8",13,10
  433.       db " AL = Füllzeichen",13,10
  434.       db " BX = Segment",13,10
  435.       db " DX = Offset",13,10
  436.       db " CX = Länge",13,10,10,10
  437.       db "Datei löschen (DeleteFile):",13,10
  438.       db " AH = 9",13,10
  439.       db " Name der Datei im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  440.       db " BX = DeleteFile() ausgeführt",13,10
  441.       db "         10000 = Okay",13,10
  442.       db "      <> 10000 = Fehler",13,10,10,10,10,10,10,10
  443.       db "<< Taste >>",13,10,"$"
  444. info6 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 6",13,10,10
  445.       db "AmigaDOS-Fehlernummer ermitteln (IoErr):",13,10
  446.       db " AH = 10",13,10,10
  447.       db " BX = Fehlernummer",13,10,
  448.       db "      202 = Objekt wird gerade benutzt",13,10
  449.       db "      203 = Objekt existiert bereits",13,10
  450.       db "      204 = Verzeichnis nicht gefunden",13,10
  451.       db "      205 = Objekt nicht gefunden",13,10
  452.       db "      210 = Dateiname ist ungültig (zu lang oder mit unerlaubten Zeichen)",13,10      
  453.       db "      213 = Diskette/Festplatte ist im Validating-Zustand",13,10
  454.       db "      214 = Diskette ist schreibgeschützt",13,10
  455.       db "      215 = Rename nur innerhalb einer Diskette/Festplatte möglich",13,10
  456.       db "      216 = Verzeichnis ist nicht leer",13,10
  457.       db "      219 = Seek()-Fehler: Ungültige Parameter",13,10
  458.       db "      221 = Diskette/Festplatte ist voll",13,10
  459.       db "      222 = Datei ist gegen Löschen geschützt",13,10
  460.       db "      223 = Datei ist gegen Überschreiben geschützt",13,10
  461.       db "      224 = Datei ist gegen Lesen geschütuzt",13,10
  462.       db "      226 = Keine Diskette eingelegt",13,10,10,10
  463.       db "<< Taste >>",13,10,"$"
  464. info7 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 7",13,10,10
  465.       db "Verzeichnis laden",13,10
  466.       db " AH = 11",13,10
  467.       db " Verzeichnisname im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  468.       db " BX = Fehlernummer",13,10
  469.       db "         10000 = Okay",13,10
  470.       db "      <> 10000 = Fehler",13,10
  471.       db " CX = Anzahl der Einträge im Parameterspeicher",13,10,10
  472.       db "Aufbau der Eintragstabelle:",13,10
  473.       db " Offset  0:  Dateiname (30 Zeichen)",13,10
  474.       db " Offset 30:  Länge der Datei als DWORD",13,10
  475.       db " Offset 34:  Protection-Bits als WORD",13,10
  476.       db " Offset 36:  Eintragstyp als BYTE",13,10
  477.       db "             1 = Datei, sonst Verzeichnis",13,10
  478.       db " Offset 37:  Erstellungsstunde als BYTE",13,10
  479.       db " Offset 38:  Erstellungsminute als BYTE",13,10
  480.       db " Offset 39:  Erstellungssekunde als BYTE",13,10
  481.       db " Offset 40:  Erstellungstag als BYTE",13,10
  482.       db " Offset 41:  Erstellungsmonat als BYTE",13,10
  483.       db " Offset 42:  Erstellungsjahr als WORD",13,10,10
  484.       db "<< Taste >>$"
  485. info8 db 13,10
  486.       db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 8",13,10,10
  487.       db "Jeder Eintrag besitzt 44 Bytes. Der erste Eintrag enthält die Daten des",13,10
  488.       db "geladenen Verzeichnisses, die folgenden Einträge die Daten der Dateien.",13,10
  489.       db "Es sind maximal 372 Einträge vorhanden. Sollte das Verzeichnis mehr Dateien",13,10
  490.       db "besitzen, als Einträge vorhanden sind, so wird das Einlesen beim 372.",13,10
  491.       db "Eintrag beendet.",13,10,10,10
  492.       db "Lock auf Datei oder Verzeichnis (Lock):",13,10
  493.       db " AH = 12",13,10
  494.       db " Name des Objekts im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  495.       db " BX = Lock() ausgeführt",13,10
  496.       db "         10000 = Okay",13,10
  497.       db "      <> 10000 = Fehler",13,10
  498.       db " CX = Handlenummer des Lock",13,10,10
  499.       db "Lock zurückgeben (UnLock):",13,10
  500.       db " AH = 13",13,10
  501.       db " BX = Handlenummer des Lock",13,10,10,10
  502.       db "<< Taste >>",13,10,"$"
  503. info9 db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 9",13,10,10
  504.       db "Name mit Laufwerk und allen Unterverzeichnissen für Lock ermitteln:",13,10
  505.       db " AH = 14",13,10
  506.       db " BX = Handlenummer des Lock",13,10,10
  507.       db " BX = Fehlernummer",13,10
  508.       db "         10000 = Okay",13,10
  509.       db "      <> 10000 = Fehler",13,10
  510.       db " Name im Parameterspeicher von Janus-Interrupt 26",13,10,10,10
  511.       db "Informationen über das Laufwerk, auf das sich ein Lock bezieht, ermitteln:",13,10 
  512.       db " AH = 15",13,10
  513.       db " BX = Handlenummer des Lock",13,10,10
  514.       db " BX = Fehlernummer",13,10
  515.       db "         10000 = Okay",13,10
  516.       db "      <> 10000 = Fehler",13,10
  517.       db " Tabelle mit Informationen im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  518.       db "    Beschreibung der Tabelle auf der folgenden Seite.",13,10,10
  519.       db "<< Taste >>",13,10,"$"     
  520. info10:
  521.       db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 10",13,10,10
  522.       db "Aufbau der Tabelle:",13,10
  523.       db " Offset  0:  Anzahl der Soft Errors als DWORD (id_NumSoftErrors)",13,10
  524.       db " Offset  4:  Nummer des Units als DWORD (id_UnitNumber)",13,10    
  525.       db " Offset  8:  Laufwerksstatus als DWORD (id_DiskState)",13,10
  526.       db "             80 = Diskette ist schreibgeschützt",13,10
  527.       db "             81 = Diskette/Festplatte wird repariert (Validating)",13,10 
  528.       db "             82 = Diskette/Festplatte ist okay und beschreibbar",13,10    
  529.       db " Offset 12:  Gesamtzahl der Blöcke als DWORD (id_NumBlocks)",13,10    
  530.       db " Offset 16:  Anzahl der belegten Blöcke als DWORD (id_NumBlocksUsed)",13,10    
  531.       db " Offset 20:  Bytes pro Block als DWORD (id_BytesPerBlock)",13,10
  532.       db " Offset 24:  Laufwerksaktivierung als DWORD (id_InUse)",13,10    
  533.       db "             <> 0 = Laufwerk aktiv",13,10,10,10
  534.       db "Aktuelles Verzeichnis setzen (CurrentDir):",13,10
  535.       db " AH = 16",13,10
  536.       db " Verzeichnisname im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  537.       db " BX = Fehlernummer",13,10
  538.       db "         10000 = Okay",13,10
  539.       db "      <> 10000 = Fehler",13,10,10
  540.       db "<< Taste >>$" 
  541. info11:
  542.       db 13,10
  543.       db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 11",13,10,10
  544.       db "Unterverzeichnis erstellen (CreateDir):",13,10
  545.       db " AH = 17",13,10
  546.       db " Name der Verzeichnisses im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  547.       db " BX = CreateDir() ausgeführt",13,10
  548.       db "         10000 = Okay",13,10
  549.       db "      <> 10000 = Fehler",13,10,10,10
  550.       db "Datei umbenennen (Rename):",13,10
  551.       db " AH = 18",13,10
  552.       db " Alter Dateiname im Parameterspeicher ab Offset 0",13,10
  553.       db " Neuer Dateiname im Parameterspeicher ab Offset 1000",13,10,10
  554.       db " BX = Fehlernummer",13,10
  555.       db "         10000 = Okay",13,10
  556.       db "      <> 10000 = Fehler",13,10,10,10,10,10
  557.       db "<< Taste >>",13,10,"$" 
  558. info12:
  559.       db "Beschreibung des File Transfer-Interrupts auf Vektor 49h:   -   Seite 12",13,10,10
  560.       db "Amiga-Programm starten (Execute):",13,10
  561.       db " AH = 19",13,10
  562.       db " Befehl im Parameter-Speicher von Janus-Interrupt 26",13,10,10
  563.       db " BX = Fehlernummer",13,10
  564.       db "         10000 = Okay",13,10
  565.       db "      <> 10000 = Fehler",13,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
  566.       db "<< Taste >>",13,10,"$"    
  567.  
  568. code  ends
  569.  end exe_start
  570.